iT邦幫忙

2024 iThome 鐵人賽

DAY 6
0
Software Development

Unity黑科技揭秘:30個專業遊戲開發者必知的開發技巧系列 第 6

Unity Unit Test - 你就是不寫測試,才會沒時間!

  • 分享至 

  • xImage
  •  

這樣用別人的標題是可以的嗎?

Unity 提供了一個內建的測試框架 - Unity Test Framework

1. 安裝 Unity Test Framework

Unity Test Framework 通常已經包含在 Unity 安裝包中,但你需要確保它在你的項目中啟用:

  1. 打開 Unity 編輯器。
  2. 進入 Window > Package Manager
  3. 搜索 Test Framework 並確認它已安裝。

2. 創建測試程序集

測試程序集是包含測試代碼的組件:

  1. Assets 文件夾中右鍵點擊,選擇 Create > Testing > Test Assembly Folder
  2. 為新的測試程序集命名,例如 Tests

3. 創建測試腳本

在測試程序集文件夾中創建新的 C# 腳本編寫測試代碼。

using NUnit.Framework;
using UnityEngine;
using UnityEngine.TestTools;

public class ExampleTest
{
    [Test]
    public void SimplePasses()
    {
        Assert.AreEqual(4, 2 + 2);
    }

    [UnityTest]
    public IEnumerator EnumeratorPasses()
    {
        yield return null;
        Assert.AreEqual(4, 2 + 2);
    }
}

4. 運行測試

使用 Unity 編輯器中的 Test Runner 窗口來運行測試:

  1. 打開 Window > General > Test Runner
  2. Test Runner 中查看所有可用測試。
  3. 點擊 Run All 運行所有測試,或選擇特定測試運行。

5. 常見的測試類型

  • 普通測試:使用 [Test] 屬性標記的方法。
  • 協程測試:使用 [UnityTest] 屬性標記的方法,允許在多幀中運行。

6. 使用 Assert 進行驗證

Assert 類提供多種方法驗證測試結果:

  • Assert.AreEqual(expected, actual):驗證兩值是否相等。
  • Assert.IsTrue(condition):驗證條件是否為真。
  • Assert.IsNull(object):驗證對象是否為空。

7. 測試場景和遊戲對象

在測試中創建和操作遊戲對象以測試遊戲邏輯:

[Test]
public void GameObjectTest()
{
    GameObject obj = new GameObject();
    Assert.IsNotNull(obj);
}

8. 高級用法

  • Mocking:使用 Mocking 框架模擬依賴對象。
  • Setup 和 Teardown:使用 [SetUp][TearDown] 在每個測試之前和之後運行代碼。

以上是一些基本的 Unity 單元測試案例做法。通過這些步驟,你可以確保你的代碼在不同情況下正常運行。



上一篇
Unity 語法糖 2 - 讓我來製作你的Attribute!
下一篇
Unity CICD - 程式的究極目的就是什麼都不用做
系列文
Unity黑科技揭秘:30個專業遊戲開發者必知的開發技巧25
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言